package edu.hubu.supermarketmanagementsystem.mapper;

import edu.hubu.supermarketmanagementsystem.entity.Product;
import org.apache.ibatis.annotations.Param;
import java.util.List;

public interface ProductMapper {

    // 查询商品 by 名称
    Product selectByProductName(String productName);

    // 插入商品
    void insertProduct(Product product);

    // 根据 ID 查询商品
    Product selectById(int productId);

    // 更新商品信息
    void updateProduct(Product product);

    // 删除商品 by ID
    void deleteProductById(int productId);

    // 查询所有商品（分页）
    List<Product> selectAll(@Param("offset") int offset, @Param("pageSize") int pageSize);

    // 根据类别查询商品
    List<Product> selectByCategory(String category);

    // 更新商品库存
    void updateStock(@Param("productId") int productId, @Param("stockDelta") int stockDelta);

    // 根据 ID 查询商品是否存在
    int existsById(int productId);

    // 根据名称模糊搜索商品
    List<Product> searchByName(String name);
}
